home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / Feelin021015 / Examples / Demo.e < prev    next >
Text File  |  2002-10-28  |  13KB  |  401 lines

  1. OPT PREPROCESS
  2.  
  3. MODULE 'feelin','libraries/feelin','a4',
  4.        'graphics/gfxmacros','graphics/rastport'
  5.  
  6. PROC main()
  7.    DEF c,w,
  8.        p1,g1,myback[16]:STRING
  9.  
  10.    ->    grp1,grp2,grp3,b1,b2,b3, p1,p2,p3,p4, g1,g2,g3, s1, i=NIL,inc=TRUE
  11.  
  12.    sys_SGlob()
  13.  
  14.    StringF(myback,'F:\h\0',{drawfunc})
  15.  
  16.    IF feelinbase := OpenLibrary('feelin.library',0)
  17.       c := ClientObject, FA_Client_Base,'DEMO',
  18.          Child, w := WindowObject, FA_Window_Title,'Feelin : Demo',
  19.             Child, VGroup,
  20.                Child, Page, FA_Group_PageTitles,['About','Objects','Groups','Special','a','b','c','d',NIL],
  21. ->PROC About
  22.                   Child, CrawlerObject, GaugeFrame, FA_Crawler_Delay,40, FA_Crawler_Micros,60000, FA_ChainToCycle,FALSE, ->FA_MinHeight,8*3,
  23.                      Child, TextObject,
  24.                         FA_Font,'Mario/13',
  25.                         FA_Back, myback,
  26.                         FA_Inner,[20,5,20,5]:CHAR,
  27.                         FA_ChainToCycle,FALSE,
  28.                         FA_Text, {__CrawText},
  29.                         FA_TextDisplay_Interline,2,
  30.                         End,
  31.                   End,
  32. ->ENDPROC
  33. ->PROC Objects
  34.                   Child, Page, FA_Group_PageTitles,['Simple Buttons','Gauges','Proportionals','Sliders','Strings',NIL],
  35. ->PROC Objects / Buttons
  36.                      Child, HGroup, GroupFrame, FA_Frame_Title,'Buttons with differents Inputs',
  37.                         Child, button('_Immediate',FV_InputMode_Immediate),
  38.                         Child, button('_Toggle',FV_InputMode_Toggle),
  39.                         Child, button('_Release',FV_InputMode_Release),
  40.                      End,
  41. ->ENDPROC
  42. ->PROC Objects / Gauges
  43.                      Child, HGroup,
  44.                         Child, VGroup,
  45.                            Child, Gauge(TRUE,0,100, 25),
  46.                            Child, Gauge(TRUE,0,100, 50),
  47.                            Child, Gauge(TRUE,0,100, 75),
  48.                            Child, Gauge(TRUE,0,100,100),
  49.                            Child, Gauge(TRUE,0,100,  0),
  50.                         End,
  51.  
  52.                         Child, Bar,
  53.  
  54.                         Child, VGroup, FA_FixedHeight,TRUE,
  55.                            Child, Gauge(TRUE,0,100,  0),
  56.                            Child, Gauge(TRUE,0,100,100),
  57.                            Child, Gauge(TRUE,0,100,  0),
  58.                            Child, Gauge(TRUE,0,100,100),
  59.                         End,
  60.  
  61.                         Child, Bar,
  62.  
  63.                         Child, HGroup, FA_Weight, 25,
  64.                            Child, Gauge(FALSE,0,100,  25),
  65.                            Child, Gauge(FALSE,0,100,  50),
  66.                            Child, Gauge(FALSE,0,100,  75),
  67.                            Child, Gauge(FALSE,0,100, 100),
  68.                         End,
  69.                      End,
  70. ->ENDPROC
  71. ->PROC Objects / Props
  72.                      Child, HGroup,
  73.                         Child, VGroup,
  74.                            Child, Prop(TRUE,32,16,0),
  75.                            Child, Prop(TRUE,32,08,0),
  76.                            Child, Prop(TRUE,32,04,0),
  77.                            Child, Prop(TRUE,32,02,0),
  78.                         End,
  79.  
  80.                         Child, VGroup, FA_FixedHeight,TRUE,
  81.                            Child, Prop(TRUE,32,16,0),
  82.                            Child, Prop(TRUE,32,08,0),
  83.                            Child, Prop(TRUE,32,04,0),
  84.                            Child, Prop(TRUE,32,02,0),
  85.                         End,
  86.  
  87.                         Child, HGroup,
  88.                            Child, Prop(FALSE,32,16,0),
  89.                            Child, Prop(FALSE,32,08,0),
  90.                            Child, Prop(FALSE,32,04,0),
  91.                            Child, Prop(FALSE,32,02,0),
  92.                         End,
  93.                      End,
  94. ->ENDPROC
  95. ->PROC Objects / Sliders
  96.                      Child, HGroup,
  97.                         Child, VGroup, FA_FixedHeight,TRUE,
  98.                            Child, SliderObject, FA_Horizontal,TRUE, SliderFrame,FA_Back,FI_Shine,  FA_Numeric_Max,10, FA_Numeric_Value, 0, End,
  99.                            Child, SliderObject, FA_Horizontal,TRUE, SliderFrame,FA_Back,FI_Fill,   FA_Numeric_Max,10, FA_Numeric_Value, 5, End,
  100.                            Child, SliderObject, FA_Horizontal,TRUE, SliderFrame,FA_Back,FI_Shadow, FA_Numeric_Max,10, FA_Numeric_Value,10, End,
  101.                            Child, Bar,
  102.                            Child, SliderObject, FA_Horizontal,TRUE, SliderFrame,FA_Back,FI_Dark, FA_Numeric_Max,  3, FA_Numeric_Min,    1, FA_Numeric_Value,  1, End,
  103.                            Child, SliderObject, FA_Horizontal,TRUE, SliderFrame,FA_Back,FI_Highlight, FA_Numeric_Max,  3, FA_Numeric_Min, -3, FA_Numeric_Value,  0, End,
  104.                         End,
  105.  
  106.                         Child, Bar,
  107.  
  108.                         Child, HGroup, FA_Weight,50,
  109.                            Child, SliderObject, FA_ChainToCycle,FALSE, SliderFrame,FA_Back,FI_Dark,  FA_Numeric_Max,  32, End,
  110.                            Child, SliderObject, SliderFrame,FA_Back,FI_Shine, FA_Numeric_Max,  3, FA_Numeric_Min, -3, FA_Numeric_Value,  0, End,
  111.                         End,
  112.                      End,
  113. ->ENDPROC
  114.                   End,
  115. ->ENDPROC
  116. ->PROC Groups
  117.                   Child, Page, FA_Group_PageTitles,['Types','Layout',NIL],
  118.                      Child, HGroup, FA_Group_SameSize,TRUE,
  119.                         Child, HGroup, GroupFrame, FA_Frame_Title, 'Horizontal',
  120.                            Child, rectObj(),
  121.                            Child, rectObj(),
  122.                            Child, rectObj(),
  123.                         End,
  124.  
  125.                         Child, VGroup, GroupFrame, FA_Frame_Title, 'Vertical',
  126.                            Child, rectObj(),
  127.                            Child, rectObj(),
  128.                            Child, rectObj(),
  129.                         End,
  130.  
  131.                         Child, VGroup, GroupFrame, FA_Frame_Title, 'Array',
  132.                            Child, HGroup, Child, rectObj(), Child, rectObj(), Child, rectObj(), End,
  133.                            Child, HGroup, Child, rectObj(), Child, rectObj(), Child, rectObj(), End,
  134.                            Child, HGroup, Child, rectObj(), Child, rectObj(), Child, rectObj(), End,
  135.                         End,
  136.                      End,
  137.  
  138.                      Child, VGroup,
  139.                         Child, HGroup, GroupFrame, FA_Frame_Title, 'Different Weights',
  140.                            Child, textObj( '25 kg',[FA_Weight, 25, NIL]),
  141.                            Child, textObj( '50 kg',[FA_Weight, 50, NIL]),
  142.                            Child, textObj( '75 kg',[FA_Weight, 75, NIL]),
  143.                            Child, textObj('100 kg',[FA_Weight,100, NIL]),
  144.                         End,
  145.  
  146.                         Child, HGroup, GroupFrame, FA_Frame_Title, 'Fixed & Variable Sizes',
  147.                            Child, textObj('fixed',[FA_FixedWidth,TRUE, NIL]),
  148.                            Child, textObj('free'),
  149.                            Child, textObj('fixed',[FA_FixedWidth,TRUE, NIL]),
  150.                            Child, textObj('free'),
  151.                            Child, textObj('fixed',[FA_FixedWidth,TRUE, NIL]),
  152.                         End,
  153.  
  154.                         Child, HGroup, GroupFrame, FA_Frame_Title, 'Relative Sizes', FA_Group_RelSizing,TRUE,
  155.                            Child, textObj('1'),
  156.                            Child, textObj('12'),
  157.                            Child, textObj('123'),
  158.                            Child, textObj('1234'),
  159.                            Child, textObj('12345'),
  160.                         End,
  161.  
  162.                         Child, HGroup, GroupFrame, FA_Frame_Title, 'Same Width', FA_Group_SameWidth,TRUE,
  163.                            Child, textObj('1'),
  164.                            Child, textObj('12'),
  165.                            Child, textObj('123'),
  166.                            Child, textObj('1234'),
  167.                         End,
  168.                      End,
  169.                   End,
  170. ->ENDPROC
  171. ->PROC Special
  172.                   Child, Page, FA_Group_PageTitles,['Rasters','Text Engine'],
  173. ->PROC Special / Rasters
  174.                      Child, VGroup, FA_Group_VSpacing, 0,
  175.                         Child, HGroup, FA_Group_HSpacing, 0,
  176.                            Child, rast(FI_Highlight),
  177.                            Child, rast(FI_Shine_Highlight),
  178.                            Child, rast(FI_HalfShine_Highlight),
  179.                            Child, rast(FI_Fill_Highlight),
  180.                            Child, rast(FI_HalfShadow_Highlight),
  181.                            Child, rast(FI_Shadow_Highlight),
  182.                            Child, rast(FI_HalfDark_Highlight),
  183.                            Child, rast(FI_Dark_Highlight),
  184.                         End,
  185.                         Child, HGroup, FA_Group_HSpacing, 0,
  186.                            Child, rast(FI_Shine),
  187.                            Child, rast(FI_Shine_HalfShine),
  188.                            Child, rast(FI_Shine_Fill),
  189.                            Child, rast(FI_Shine_HalfShadow),
  190.                            Child, rast(FI_Shine_Shadow),
  191.                            Child, rast(FI_Shine_HalfDark),
  192.                            Child, rast(FI_Shine_Dark),
  193.                         End,
  194.  
  195.                         Child, HGroup, FA_Group_HSpacing, 0,
  196.                            Child, rast(FI_HalfShine),
  197.                            Child, rast(FI_HalfShine_Fill),
  198.                            Child, rast(FI_HalfShine_HalfShadow),
  199.                            Child, rast(FI_HalfShine_Shadow),
  200.                            Child, rast(FI_HalfShine_HalfDark),
  201.                            Child, rast(FI_HalfShine_Dark),
  202.                         End,
  203.  
  204.                         Child, HGroup, FA_Group_HSpacing, 0,
  205.                            Child, rast(FI_Fill),
  206.                            Child, rast(FI_Fill_HalfShadow),
  207.                            Child, rast(FI_Fill_Shadow),
  208.                            Child, rast(FI_Fill_HalfDark),
  209.                            Child, rast(FI_Fill_Dark),
  210.                         End,
  211.  
  212.                         Child, HGroup, FA_Group_HSpacing, 0,
  213.                            Child, rast(FI_HalfShadow),
  214.                            Child, rast(FI_HalfShadow_Shadow),
  215.                            Child, rast(FI_HalfShadow_HalfDark),
  216.                            Child, rast(FI_HalfShadow_Dark),
  217.                         End,
  218.  
  219.                         Child, HGroup, FA_Group_HSpacing, 0,
  220.                            Child, rast(FI_Shadow),
  221.                            Child, rast(FI_Shadow_HalfDark),
  222.                            Child, rast(FI_Shadow_Dark),
  223.                         End,
  224.  
  225.                         Child, HGroup, FA_Group_HSpacing, 0,
  226.                            Child, rast(FI_HalfDark),
  227.                            Child, rast(FI_HalfDark_Dark),
  228.                         End,
  229.  
  230.                         Child, rast(FI_Dark),
  231.                      End,
  232. ->ENDPROC
  233. ->PROC Special / Text Engine
  234.                      Child, TextObject,
  235.                               FA_ChainToCycle,    FALSE,
  236.                               FA_FixedHeight,     TRUE,
  237.                               FA_Text,            {__Text},
  238.                               FA_Text_SetMin,     FALSE,
  239.                               FA_TextDisplay_Interline,  5,
  240.                               End,
  241. ->ENDPROC
  242.                   End,
  243. ->ENDPROC
  244.  
  245.                End,
  246.             End,
  247.          End,
  248.       End
  249.  
  250.       IF c
  251. /*
  252.          F_DoA(b1,FM_Notify,[FA_Pressed,FALSE,p,3,FM_Set,FA_Page_Active,grp1])
  253.          F_DoA(b2,FM_Notify,[FA_Pressed,FALSE,p,3,FM_Set,FA_Page_Active,grp2])
  254.          F_DoA(b3,FM_Notify,[FA_Pressed,FALSE,p,3,FM_Set,FA_Page_Active,grp3])
  255.          F_DoA(p4,FM_Notify,[FA_Prop_First,FV_Notify_Always,p3,3,FM_Set,FA_Prop_First,FV_Notify_Value])
  256.          F_DoA(p3,FM_Notify,[FA_Prop_First,FV_Notify_Always,p2,3,FM_Set,FA_Prop_First,FV_Notify_Value])
  257.          F_DoA(p2,FM_Notify,[FA_Prop_First,FV_Notify_Always,p1,3,FM_Set,FA_Prop_First,FV_Notify_Value])
  258.          F_DoA(g1,FM_Notify,[FA_Numeric_Value,FV_Notify_Always,g3,5,FM_Set,FA_Numeric_Value,FV_Notify_Value,FA_Numeric_Multiply,2])
  259.          F_DoA(g1,FM_Notify,[FA_Numeric_Value,FV_Notify_Always,s1,5,FM_Set,FA_Numeric_Value,FV_Notify_Value,FA_Numeric_Multiply,2])
  260. */
  261.          F_DoA(w,FM_Notify,[FA_Window_CloseRequest,TRUE,FV_Notify_Client,2,FM_Client_ReturnID,FV_Client_Quit])
  262.          F_Set(w,FA_Window_Open,TRUE)
  263.  
  264.          F_DoA(c,FM_Client_Run,NIL)
  265.  
  266. /*
  267.          WHILE F_DoA(c,FM_Client_Event,NIL) <> FV_Client_Quit
  268.             IF (i := i + 1) = 80
  269.                IF inc
  270.                   F_DoA(g1,FM_Numeric_Increase,[1])
  271.                   IF F_Get(g1,FA_Numeric_Value) = 16 THEN inc := FALSE
  272.                ELSE
  273.                   F_DoA(g1,FM_Numeric_Decrease,[1])
  274.                   IF F_Get(g1,FA_Numeric_Value) = 0  THEN inc := TRUE
  275.                ENDIF ; i := NIL
  276.             ENDIF
  277.  
  278.             F_Set(g2,FA_Numeric_Value,Rnd(100))
  279.          ENDWHILE
  280. */
  281.          F_DisposeObj(c)
  282.       ENDIF
  283.  
  284.       CloseLibrary(feelinbase)
  285.    ELSE
  286.       WriteF('Unable to open feelin.library\n')
  287.    ENDIF
  288. ENDPROC
  289.  
  290. PROC textObj(name,tags=NIL)
  291.    RETURN   TextObject,
  292.             FA_ChainToCycle,  FALSE,
  293.             FA_FixedHeight,   TRUE,
  294.             FA_Frame,         FP_Frame_Text,
  295.             FA_Back,          FI_HalfShadow,
  296.             FA_Text,          name,
  297.             FA_Text_PreParse, '`c',
  298.             2,                tags,
  299.             End
  300. ENDPROC
  301. PROC rectObj()
  302.    RETURN   AreaObject,
  303.             FA_ChainToCycle,  FALSE,
  304.             FA_Frame,         FP_Frame_Text,
  305.             FA_Back,          FI_HalfShadow,
  306.             End
  307. ENDPROC
  308. PROC rast(rast)
  309.    RETURN   AreaObject,
  310.             FA_ChainToCycle,  FALSE,
  311.             FA_Back,          rast,
  312.             End
  313. ENDPROC
  314. PROC button(label,input)
  315.    RETURN TextObject,
  316.           FA_FixedHeight,     TRUE,
  317.           FA_Frame,           FP_Frame_Button,
  318.           FA_Font,            FP_Font_Button,
  319.           FA_Back,            FP_Back_Button,
  320.           FA_AltBack,         FP_Back_ButtonAlt,
  321.           FA_InputMode,       input,
  322.           FA_Text,            label,
  323.           FA_Text_PreParse,   '`c',
  324.           FA_Text_SetMin,     TRUE,
  325.           End
  326. ENDPROC
  327.  
  328. PROC drawfunc(render=A0:PTR TO feelinRender,region=A2:PTR TO feelinRect)
  329.    DEF x1,y1,x2,y2,x3,rp
  330.  
  331.    sys_RGlob()
  332.  
  333.    x1 := region.x1 ; x3 := region.x2 ; x2 := x3 - x1 / 3 + x1
  334.    y1 := region.y1 ; y2 := region.y2 ; rp := render.rport
  335.  
  336.    _APen(render.pens[FV_Pen_HalfShadow]) ; _Boxf(x1,y1,x2,y2)
  337.    _APen(render.pens[FV_Pen_Fill])       ; _Boxf(x2+1,y1,x3,y2)
  338. ENDPROC
  339.  
  340. ->PROC Objects / Strings
  341. /*
  342.                      Child, VGroup, NoFrame, FA_FixedHeight,TRUE,
  343.                         Child, BarTitle('Numeric string'),
  344.                         Child, F_MakeObjA(FO_String,['1234',32],[FA_String_Accept,{__Num}, NIL]),
  345.                         Child, BarTitle('Hexadecimal string'),
  346.                         Child, F_MakeObjA(FO_String,['FF123a',32],[FA_String_Accept,{__Hex}, NIL]),
  347.                         Child, BarTitle('Alphabetic strings & Alignement'),
  348.  
  349.                         Child, HGroup, NoFrame,
  350.                            Child, F_MakeObjA(FO_String,['Lotan is my Lord',80],[FA_String_Reject,{__Num}, FA_String_Format,FV_String_Format_Left,   NIL]),
  351.                            Child, F_MakeObjA(FO_String,['Lotan is my Lord',80],[FA_String_Reject,{__Num}, FA_String_Format,FV_String_Format_Center, NIL]),
  352.                            Child, F_MakeObjA(FO_String,['Lotan is my Lord',80],[FA_String_Reject,{__Num}, FA_String_Format,FV_String_Format_Right,  NIL]),
  353.                         End,
  354.                      End,
  355. */
  356. ->ENDPROC
  357.  
  358. ->PROC Datas
  359. __Text:
  360.    CHAR '`c`<0>',
  361.         'Normal text\n',
  362.         '`<8>Highlighted text`<0>\n',
  363. ->        '`A1C`A2o`A3l`A4o`A5r`A6e`A7d `A6t`A5e`A4x`A3t`A0\n',
  364. ->        '`M1`B7`A1C`B6`A2o`B5`A3l`B4`A4o`B3`A5r`B2`A6e`B1`A7d `B2`A6t`B3`A5e`B4`A4x`B5`A3t`B6`A0`M0\n',
  365.         '`SeEmboss`Sn & `SgGhost`Sn\n',
  366.         '`ShSome Light`Sn & `SsSome Shadow`Sn\n',
  367.         '`Sh`SsLight & Shadow`Sn Or `Se`SsEmboss & Shadow`Sn\n',
  368.         '`iItalic`n, `bBold`n, `uUnderlined`n, Normal, `i`b`uMixed`n\n',
  369.         '`lA very, very, very long line that will be nicely truncated\n',
  370.         '`cA very, very, very long line that will be nicely truncated\n',
  371.         '`rA very, very, very long line that will be nicely truncated',NIL
  372.  
  373. __CrawText:
  374.    CHAR  '\n`c`Ss`<1>!! Welcome !!`<0>`Sn\n\n',
  375.          'Yes, welcome to a brand new world !\n\t\n',
  376.  
  377.          'Well... This is `Ss`ShFeelin`Sn, a new\n',
  378.          '`bObject Oriented System`n.\n\n',
  379.  
  380.          '`Ss`ShFeelin`Sn is new, written from scratch.\n',
  381.          'It does not use `bBOOPSI`n\n',
  382.          'or `uany`n other kind of stuff.\n\n',
  383.  
  384.          '`Ss`ShFeelin`Sn is very fast,\n',
  385.          'easy to use, and very small :\n',
  386.          'feelin.library is about 5Ko\n\n',
  387.  
  388.          'It is complety flexible and expandable.\n\t\n',
  389.  
  390.          '`c`Ss`ShFeelin`Sn has no past,\n',
  391.          'only future.\n\n\n',
  392.  
  393.          '`c`iWell, I hope ;-)`n...\n\n\n',
  394.  
  395.         '`SsE`<5>n`<2>j`<5>o`<0>y,\n\n\n',
  396.         '`<1>L`<2>o`<4>t`<5>s `<6>o`<7>f `<6>l`<5>o`<4>v`<2>e`<0> `<1>!`<4>!`<1>!`<0>`Sn\n\n\n\n',NIL
  397.  
  398. __Hex:   CHAR 'ABCDEFabcdef'
  399. __Num:   CHAR '1234567890',0   
  400. ->ENDPROC
  401.